(*************************************************** Ant Movie Catalog importation script www.antp.be/software/moviecatalog/ [Infos] Authors=Karamov Ilshat aka KAA (kaa2@pisem.net) Title=John Silver (RU) Description=Import from www.kino.orc.ru Site=www.kino.orc.ru Language=RU Version=1.1 Requires=3.5.0 Comments=Доступ к рецензиям Джона Сильвера, размещенных на сайте www.kino.orc.ru License=This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. GetInfo=1 [Options] ***************************************************) program John_Silver; const BaseAddress = 'http://www.kino.orc.ru/js/review/'; var MovieName: string; //============================================================================== procedure AnalyzePage(); var Page: TStringList; BeginPos, EndPos: Integer; AddressText, HTMLText : string; begin Page := TStringList.Create; PickTreeClear; PickTreeAdd('Рецензии Джона Сильвера на фильмы в алфавитном порядке', ''); AddAlphabet(); if PickTreeExec(AddressText) then begin Page.Text := GetPage(AddressText); HTMLText := Page.Text; end; if Pos('
', Line);
MovieAddress := BaseAddress+Copy(Line, 0, EndPos-1);
StartPos := Pos('">', Line);
Line := Copy(Line, StartPos+Length('">'), Length(Line));
StartPos := Pos('">', Line);
EndPos := Pos('', Line);
MovieTitle := Copy(Line, StartPos+Length('">'), EndPos-1);
HTMLRemoveTags(MovieTitle);
PickTreeAdd(MovieTitle, MovieAddress);
end;
end;
//==============================================================================
procedure AddAlphabet();
var
i: integer;
Alphabet, Addresses, MovieTitle, MovieAddress: string;
StartPos, EndPos: Integer;
begin
Alphabet :='А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я 1-10 ';
Addresses:='a b v g d ye zh z i k l m n o p r s t u f h ts ch sh shch e yu ya 110 ';
StartPos:=1;
for i:=1 to 29 do
begin
EndPos:=Pos(' ', Alphabet);
MovieTitle := Copy(Alphabet, 1, EndPos);
Alphabet:=Copy(Alphabet, EndPos+1, Length(Alphabet));
EndPos:=Pos(' ', Addresses);
MovieAddress := Copy(Addresses, 1, EndPos-1);
Addresses:=Copy(Addresses, EndPos+1, Length(Addresses));
PickTreeAdd(MovieTitle, BaseAddress+MovieAddress+'.shtml');
end;
end;
//==============================================================================
procedure AnalyzeVideoPage(Page: TStringList);
var
HTMLText, HTMLText1: string;
BeginPos, EndPos: Integer;
MovieName, MovieNameTrans, MovieNameOrig, MovieDirector,
MovieYear, MovieCategory, MovieRating,
MoviePictureAddress, MovieLength, MovieCountry,
MovieActors, MovieComments: string;
begin
HTMLText:=Page.Text;
HTMLText:=StringReplace(HTMLText, #13#10+' ', ' ');
HTMLText:=StringReplace(HTMLText, #13#10+' ', ' ');
HTMLText:=StringReplace(HTMLText, #13#10+' ', ' ');
HTMLText:=StringReplace(HTMLText, '"', '"');
HTMLText:=StringReplace(HTMLText, ' ', ' ');
BeginPos := Pos(' ', HTMLText)+Length(' ');
HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
// Наименование
if CanSetField(fieldTranslatedTitle) then
begin
if Pos('polosa_title.jpg', HTMLText)<>0 then
begin
BeginPos := Pos('polosa_title.jpg', HTMLText)+Length('polosa_title.jpg');
HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
BeginPos := Pos('', HTMLText)+Length('');
HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
EndPos := Pos('', HTMLText);
MovieNameTrans := Trim(Copy(HTMLText, 0, EndPos-1));
EndPos := Pos(' (', HTMLText);
MovieNameOrig := Trim(Copy(MovieNameTrans, EndPos+2, Length(MovieNameTrans)));
MovieNameTrans := Trim(Copy(MovieNameTrans, 0, EndPos-1));
EndPos := Pos(')', MovieNameTrans);
MovieNameOrig := Trim(Copy(MovieNameOrig, 0, EndPos-1));
SetField(fieldTranslatedTitle, MovieNameTrans);
end;
end;
// Оригинальное наименование
if CanSetField(fieldOriginalTitle) then
begin
SetField(fieldOriginalTitle, MovieNameOrig);
end;
BeginPos := Pos('polosa_title.jpg', HTMLText)+Length('polosa_title.jpg');
HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
// Адрес картинки
BeginPos := Pos(' ', HTMLText); MovieRating := Trim(Copy(HTMLText, 0, EndPos-1)); SetField(fieldRating, MovieRating); end; end; BeginPos := Pos(' ', HTMLText)+Length(' '); HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText)); // Коментарий-отзыв if CanSetField(fieldComments) then begin BeginPos := Pos(' ', HTMLText) +Length(' '); HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText)); EndPos := Pos(' ', HTMLText); MovieComments := Trim(Copy(HTMLText, 0, EndPos-1)); HTMLRemoveTags(MovieComments); MovieComments:=Trim(StringReplace(MovieComments,'"','"')); MovieComments:=Trim(StringReplace(MovieComments,'***','"')); MovieComments:=Trim(StringReplace(MovieComments,#13#10#13#10,#13#10)); SetField(fieldComments, 'Рецензия Джона Сильвера на фильм: '+MovieComments); end; // Картинка if CanSetPicture then GetPicture(MoviePictureAddress); // Результаты; end; //============================================================================== //============================================================================== //============================================================================== begin if CheckVersion(3,5,0) then begin MovieName := GetField(fieldTranslatedTitle); if MovieName = '' then MovieName := GetField(fieldOriginalTitle); AnalyzePage(); end else ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)'); end. |